// 节流：事件连续被触发但是n秒内只执行一次


function throttle(fn, delay) {
    let timer;
    // 此处this指向window
    return function() {
        // 这里this指向要接收事件的HTML元素
        let _this = this;
        let args = arguments;
        if (timer) {
            return;
        };

        timer = setTimeout(function() {
            // 这里没有明确的调用方法时，指向的是window
            // 这里如果改成箭头函数的话，因为箭头函数本身没有this，从上一层作用域继承，就是接受事件的HTML元素了
            fn.apply(_this, args);
            timer = null;
        }, delay);

    };
};